package com.zhoux.api.io.io;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

/**
 * @author taoyi
 * @version 1.0
 * @date 2021/3/29 9:24
 *
 * 本类用于测试字符流
 * 字符流
 * Java 将流按照读写单位划分为字节流和字符流
 * java.io.InputStream 和 java.io.OutputStream 是所有字节流的超类
 * java.io.Reader 和 java.io.Writer 则是所有字符流的超类, 他们是平级关系
 *
 * Reader 和 Writer 是两个抽象类, 里面规定了所有字符流都必须具备的读写字符的相关方法.
 * 字符流最小读写单位为字符(char), 但是底层实际是读写字节, 只是字符与字节的转换工作有字符流完成
 *
 * 转换流
 * java.io.InputStreamReader 和 java.io.OutputStreamWriter
 * 它们是字符流非常常用的一对实现类, 同时也是一对高级流, 实际开发中我们不直接操作它们,但是它们在流连接中是非常重要的一环.
 *
 *
 *
 */
public class OSW_Demo {
    public static void main(String[] args) {
        OutputStreamWriter osw = null;

        try {
            osw = new OutputStreamWriter(new FileOutputStream(".\\src\\main\\java\\com\\ty\\file\\osw.txt"),"utf-8");
            osw.write("愿你迷路到我身旁~\n");
            osw.write("从你的全世界路过~\n");
            System.out.println("写入完成！");
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                osw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
